-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: spend fidelity bond #556
Conversation
87bacb0
to
846cee6
Compare
Nice work so far! Is the source jar selectable to move the fb utxo inside there? If not, Maybe it should be grayed out? „Payment without privacy improvements“ I think will stick stay with „moving without privacy improvements“ because we are not paying anything in the users eye I like it. Where is this „moving“ icon inside the button from? |
Yes. You can move the expired FB anywhere.
I was thinking of completely removing this phrase, as users might be confused and it is not really needed here. What do you think?
"Transfer" icon on https://bitcoinicons.com |
All good so far. Will have a look asap from my desktop. But overall you nailed it. Maybe we should rephrase it to something like: make fb usable again… bla bla so the user gets the context that before that it’s not possible to access the funds |
That's true.. maybe "Move to Jar" is misleading as it already is in Jar A, it is just not able to take part in a taker/maker operations. |
0ada0bb
to
81bcb6c
Compare
this method can lator on be used to send a fidelity bond to an external destination, renew the fidelity bond, or generally send selected utxos without manually freezing/ unfreezing them before.
Oh wow, that's big. Will do my best to review this fully until EOW. |
Conflicts introduced due to merge of #566 - please resolve @theborakompanioni 🙏 |
Resolved. 🙏 |
What about: "Unlock expired fidelity bond?" That's what you want to do after all, no? In some sense the FB is locked away, both in time and space. Once the timelock expires you can unlock it completely, by moving it to any jar. Thoughts on this terminology @theborakompanioni @editwentyone? |
Another thought: Why give the user the option to select a jar in the first place? I'd default to Jar A, or at least pre-select A and hide the selection below a fold. Why make the user think? It's not terribly important, is it? The user just wants to press "Unlock" and wants to use the funds again. Here is how I would simplify the flow & the language: Two clicks, the second one being a confirmation. (I'd also remove the red warning that tells the user that this is a send without privacy improvement. The user can't change it at this point, there is no need to show a warning. It's just scary and confusing.) |
feature is default on - Jar A is selected automatically
Done.
Not too convinced, as this is an action not performed very often and the described approach provides less freedom to users.
Done. |
Nice! I like it. Much more streamlined.
If we want to keep it in, we could add an Add this "fold" ... ...to this screen: Would still default to A (unless you go through the trouble of changing it) and would hide the complexity nicely, while still providing the option. What do you think? |
Full ACK.. Much better, imho. : -) An issue for this has been created: #574 |
Partly addresses #547
First iteration of moving a fidelity bond after it expired.
Feedback is highly welcome, especially in regard to wording.
A follow-up PR for "renewing" the FB is in the making (also part of #547).
First attempts of this feature were based on the "Create FB" flow:
While this method gives users a better understanding of what is going on, it was annoying, resulted in so much code and just felt bloated.
Now it is just:
With the current approach, the necessary intermediate steps are hidden from the user. This makes for a much nicer UX. Any input on this is highly appreciated.
Also, the resulting method has been generalized: Sending any amount of specific UTXOs to a generic destination (internal or external). This can be reused in the upcoming PR when renewing the FB and also elsewhere.
Other stuff
JarDetailsOverlay
componentPaymentConfirmModal
to be used from other components thanSend
Balance
component from unnecessary re-renders (+handle possibleNaN
values)Note: Spending an expired fidelity bond UTXO can still fail if the median time of the chain is still lower than the locktime of the bond. There is currently no way to verify if it is successfully spendable and a bond will always be marked as "expired" if its locktime is in the past.
How to test?
Create an expired fidelity bond (only possible when starting via
npm run dev:start
) and try moving it into a jar.Also note, that only the actual fidelity bond UTXO should be spent, all other UTXOs should be frozen and not be moved. Once the payment is done (regardless of success), UTXOs should have their original state again.
📸